import request from '@/utils/request' // ←注：左边这项中的“request”即是“'@/utils/request.js'”中的“service”(因为“service”在“'@/utils/request.js'”中是被导出的默认对象，所以在被导入时取名可以不同)
const headers = {
    'Content-Type':'application/x-www-form-urlencoded' // ←注：左边这项是在提交表单时后台要求我们指定的数据格式
}
// 在提交表单登录时还需要在请求头（其形式为“对象”）上面带上两个信息：“Authorization（Key值）”和“Basic client_id:client_secret（Value值，即‘Basic+客户端ID和客户端密码’）”
const auth = { // 注：“auth”被用于指定用户名（客户端ID）和密码（客户端密码）
    username:"blog-admin",
    password:"123456"
}
export function login (data) {
    // 返回Promise
    return request({ // ←注：在此处作为参数被传入到“request”中的“config”是一个对象
        url:'/auth/login',
        method:'post',
        params:data, // ←注：在此处后台要求以“params”方式而非以“data”方式传递数据（此二者的区别：以“params”方式被提交到后台的数据是被显示在浏览器的地址栏内的问号后面的（即以“参数”的方式传递数据），而以“data”方式被提交到后台的数据是被显示在被提交的表单的输入框的内部的（即以“请求体”的方式传递数据））
        // 在提交表单时要带上“auth”
        auth, // ←注：左边这项相当于“ES5”中的“auth:auth”
        headers // ←注：左边这项相当于“ES5”中的“headers:headers”
    })
}
// 获取协议内容
export function getXieyi() {
    return request({
        // “window.location.href”是一个路径变量，它可以获取到当前页面的地址
        url:`${window.location.href}/xieyi.html`, // ←注：左边这项访问的是“项目根目录/public/xieyi.html”
        method:'get'
    })
}
// 查询用户名是否已被注册
export function getUserByUsername(username) {
    return request({
        url:`/system/api/user/username/${username}`,
        method:'get',
    })
}
// 提交注册数据
export function register(data) {
    return request({
        url:'/system/api/user/register',
        method:'post',
        data, // ←注：左边这项相当于“ES5”中的“data:data”
    })
}
// 退出接口
export function logout(accessToken) {
    return request({
        url:'/auth/logout',
        method:'get',
        params:{accessToken} // ←注：左边这项中的“accessToken”相当于“ES5”中的“accessToken:accessToken”
    })
}
// 刷新令牌接口（通过刷新令牌获取新的认证信息）
export function refreshToken(refreshToken) {
    return request({
        url:'/auth/user/refreshToken',
        method:'get',
        params:{refreshToken}, // ←注：左边这项中的“refreshToken”相当于“ES5”中的“refreshToken:refreshToken”
        auth, // ←注：左边这项相当于“ES5”中的“auth:auth”
        headers // ←注：左边这项相当于“ES5”中的“headers:headers”
    })
}